The present invention generally to soft modems and relates to protection for soft modems, in particular.
Soft modems, also known as host based modems, have been in existence since 1995. In such modems, all the required processing is done in software on the host CPU (central processing unit) of a computer, for example such as a PC (personal computer). Certain hardware is still required for soft modems, as shown in FIG. 1, to which reference is now made. FIG. 1 is a schematic illustration of a prior art PC, comprising a motherboard 10, an audio subsystem 12 and a modem subsystem 14. The motherboard 10 comprises a main PC bus 16, a host CPU 18, and a memory 20. The motherboard further comprises a first chip set 22 for interfacing to the host CPU 18 and the main PC bus 16, and a second chip set 24 for interfacing to the main PC bus 16 and additional buses. The main PC bus 16 is, for example, a Peripheral Component Interconnect (PCI) bus or an Industry Standard Architecture (ISA) bus or any other central PC bus.
An external telephone line (not shown) is connected to the modem subsystem 14. Electrical audio signals from the telephone line are processed by a data access arrangement (DAA) 26 and are converted from analog to digital by a modem codec (analog to digital coder and digital to analog decoder) 28. The modem subsystem 14 also includes a digital modem interface device 30 which controls the modem codes 28 and the DAA 26, interfaces to the main PC bus 16, and provides signal buffering and control means.
The software instructions of a soft modem are loaded into the memory 20, from which they are accessed and executed by the host CPU 18. When the host CPU 18 needs to communicate with the components of the modem subsystem 14, it sends messages via the first chip set 22 directly to the modem interface device 30. The messages are compatible with the protocol of the main PC bus 16.
Similarly, the audio subsystem 12 comprises an audio codec (analog to digital coder and digital to analog decoder) 32 and an audio processing device 34 which controls the audio codec 32 and interfaces to the main PC bus 16. Applications using the components of the audio subsystem 12 include for example, recording sounds from a microphone and producing sounds through a speaker.
A soft modem manufacturer typically sells both soft modem software and a customized modem interface device to a PC manufacturer, so that the customized modem interface device may be integrated into the modem subsystem of the PC. Since the customized modem interface device is an essential hardware component, without which the soft modem software is inoperable, this arrangement provides some protection to the soft modem manufacturer.
In 1997, Intel Corporation of California, USA published a new standard, called ACxe2x80x297, which establishes a standard interface, called AC-link, to audio and modem codecs. The ACxe2x80x297 standard also establishes a standard way of programming the audio and modem codecs. Furthermore, Intel announced in 1998 that its future chip set, samples of which are currently available, will include an integrated modem interface device and an audio processing device, both compatible with the AC-link protocol.
This is shown in FIG. 2, to which reference is now made, which is a schematic illustration of an AC-link compatible PC, as described by Intel. Since the AC-link compatible PC is similar to the PC of FIG. 1, similar reference numerals refer to similar elements in the figure. The AC-link compatible PC comprises a motherboard 40, an audio subsystem 42 and a modem subsystem 44. The motherboard 40 includes a second chip set 46 for interfacing to the main PC bus 16 and additional buses. It is this second chip set 46 which includes an integrated modem interface device and an integrated audio processing device, both of which are AC-link compatible.
The modem subsystem 44 comprises only an AC-link compatible modem codec 48 and the DAA 26. Similarly, the audio subsystem 42 includes only an AC-link compatible audio codec 50. It will be appreciated that the modem subsystem 44 and audio subsystem 42 are expected to be smaller and less expensive than the modem subsystem 14 and audio subsystem 12, respectively, of FIG. 1.
There is also an option for an AC-link compatible, combined audio modem codec (AMC), in place of the separate audio codec 50 and modem codec 48.
A soft modem implemented on a PC whose chip set includes an integrated, AC-link compatible, modem interface device does not require that the PC have additional, customized, digital interface components. Rather, the PC has a standard chip set which is sold by a third party. The modem codec, audio codec and DAA are also standard and sold by third parties. The interface to the codecs is accomplished through the AC-link protocol, which is a serial bus with a pre-determined slot allocation. Since the PC already has all the required hardware, the soft modem manufacturer needs only provide the soft modem software, which reduces the cost and eases the implementation. In this arrangement, however, the soft modem software manufacturer is vulnerable to having the software illegally reproduced.
An object of the present invention is to protect soft modem software in a computer system having a serial bus with designated time slots.
There is therefore provided in accordance with a preferred embodiment of the present invention, a system for transmitting a key for soft modem software protection over a serial bus of a computer having a CPU and a hardware device. The serial bus has designated time slots. The system includes a storage unit in the hardware device for storing a representation of the key therein, and means for transmitting the representation from the hardware device to the CPU over at least one of the designated time slots.
There is also provided in accordance with a preferred embodiment of the present invention, a system which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having registers, and a serial bus having designated time slots, at least one of the time slots being designated for data of the registers. The system includes bit data of the key stored in a subset of the bits of at least one of the registers, and means for transmitting the bit data from the at least one register to the CPU in the at least one register data time slot.
Moreover, in accordance with a preferred embodiment of the present invention, the key is encrypted.
Furthermore, in accordance with a preferred embodiment of the present invention, the system further includes a second key associated with the soft modem software, and means for altering operation of the soft modem software if the transmitted bit data is incompatible with the associated second key.
Additionally, in accordance with a preferred embodiment of the present invention, the means for alteration includes at least one of the following: means for stopping execution of the soft modem software, means for limiting the operation of the soft modem software to a predetermined service level, and means for changing data samples passing through the soft modem software at a predefined magnitude and frequency.
Furthermore, in accordance with a preferred embodiment of the present invention, the means for alteration is configured to become operative a predetermined amount of time after the soft modem software becomes operative.
Altematively, in accordance with a preferred embodiment of the present invention, the means for alteration is configured to become operative a random amount of time after the soft modem software becomes operative.
There is also provided in accordance with a preferred embodiment of the present invention, a system which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having general purpose input output (GPI/O) pins, a hardware device connected to the GPI/O pins, and a serial bus having designated time slots. At least one of the time slots is designated for GPI/O read data and at least one of the time slots is designated for GPI/O write data. The system includes bit data of the key stored in the hardware device, means for transmitting at least one control signal from the CPU to the modem codec over the at least one time slot designated for GPI/O write data, means for transmitting the at least one control signal from the modem codec to the hardware device over the GPI/O output pin, means for reading the bit data from the hardware device to the modem codec over the GPI/O input pin, and means for transmitting the bit data from the modem codec to the CPU over the at least one GPI/O read data time slot.
There is also provided, in accordance with a preferred embodiment of the present invention, a system which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having an on/off hook pin and an analog input pin, a hardware device connected to the on/off hook pin and the analog input pin, and a serial bus having designated time slots. At least one of the time slots is designated for analog input data and at least one of the time slots is designated for GPI/O write data. The system includes bit data of the key stored in the hardware device, means for transmitting at least one control signal from the CPU to the modem codec over the at least one time slot designated for GPI/O write data, means for transmitting at least one trigger signal from the modem codec to the hardware device over the on/off hook pin, means for reading the bit data from the hardware device to the modem codec over the analog input pin, and means for transmitting the bit data from the modem codec to the CPU over the at least one analog input data time slot.
There is also provided, in accordance with a preferred embodiment of the present invention, a system for protecting soft modem software on a computer having a CPU. The system includes a first key associated with the soft modem software, a second key stored in a hardware device on the computer, means for transmitting the second key from the hardware device to the CPU, and means for altering operation of the soft modem software if the transmitted second key is incompatible with the associated first key.
Preferably, in accordance with a preferred embodiment of the present invention, at least one of the keys is encrypted.
There is also provided, in accordance with a preferred embodiment of the present invention, a system for protecting soft modem software, the system including a local computer having a unique key, and an external computer. The external computer receives the key from the local computer when the local computer accesses the external computer in order to download the software. The external computer embeds information related to the key in a customized version of the software, and downloads the customized version to the local computer. The system also includes means for altering operation of the customized version. The means for altering includes at least one of a group including the following: means for stopping execution of the customized version, means for limiting the operation of the customized version to a predetermined service level, and means for changing data samples passing through the customized version in a magnitude and frequency which prevents useful communication.
Preferably, in accordance with a preferred embodiment of the present invention, the means for alteration is configured to become operative a predetermined amount of time after the customized version becomes operative.
Alternatively, in accordance with a preferred embodiment of the present invention, the means for alteration is configured to become operative a random amount of time after the customized version becomes operative.
There is also provided, in accordance with a preferred embodiment of the present invention, a method which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having registers, and a serial bus having designated time slots. At least one of the time slots is designated for data of the registers. The method comprises the steps of storing bit data of the key in a subset of the bits of at least one of the registers, and transmitting the bit data from the at least one register to the CPU in the at least one register data time slot.
Preferably, in accordance with a preferred embodiment of the present invention, the key is encrypted.
Furthermore, in accordance with a preferred embodiment of the present invention, the method further includes the steps of associating a second key with the soft modem software, and altering operation of the soft modem software if the transmitted bit data is incompatible with the second key.
Moreover, in accordance with a preferred embodiment of the present invention, the alteration step includes at least one of the following steps: stopping execution of the soft modem software, limiting the operation of the soft modem software to a predetermined service level, and changing data samples passing through the soft modem software at a predefined magnitude and frequency.
Additionally, in accordance with a preferred embodiment of the present invention, the alteration step begins a predetermined amount of time after operation of the soft modem software begins.
Alternatively, in accordance with a preferred embodiment of the present invention, the alteration step begins a random amount of time after operation of the soft modem software begins.
There is also provided, in accordance with a preferred embodiment of the present invention, a method which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having general purpose input output (GPI/O) pins, a hardware device connected to the GPI/O pins, and a serial bus having designated time slots. At least one of the time slots is designated for GPI/O read data and at least one of the time slots is designated for GPI/O write data. The method includes the steps of storing bit data of the key in the hardware device, transmitting at least one control signal from the CPU to the modem codec over the at least one time slot designated for GPI/O write data, transmitting the at least one control signal from the modem codec to the hardware device over the GPI/O output pin, reading the bit data from the hardware device to the modem codec over the GPI/O input pin, and transmitting the bit data from the modem codec to the CPU over the at least one GPI/O read data time slot.
There is also provided, in accordance with a preferred embodiment of the present invention, a method which uses a key for soft modem software protection on a computer. The computer has a CPU, a modem codec having an on/off hook pin and an analog input pin, a hardware device connected to the on/off hook pin and the analog input pin, and a serial bus having designated time slots. At least one of the time slots is designated for analog input data and at least one of the time slots is designated for GPI/O write data. The method includes the steps of storing bit data of the key in the hardware device, transmitting at least one control signal from the CPU to the modem codec over the at least one time slot designated for GPI/O write data, transmitting the at least one trigger signal from the modem codec to the hardware device over the on/off hook pin, reading the bit data from the hardware device to the modem codec over the analog input pin, and transmitting the bit data from the modem codec to the CPU over the at least one analog input data time slot.
There is also provided, in accordance with a preferred embodiment of the present invention, a method for protecting soft modem software on a computer having a CPU, a serial bus having designated time slots, and a modem subsystem. The method includes the steps of associating a first key with the soft modem software, storing a second key in a hardware device in the modem subsystem, transmitting the second key from the hardware device to the CPU in at least one of the designated time slots, and altering operation of the soft modem software if the transmitted second key is incompatible with the associated first key.
Preferably, in accordance with a preferred embodiment of the present invention, at least one of the keys is encrypted.
Moreover, in accordance with a preferred embodiment of the present invention, the alteration step includes at least one of the following steps: stopping execution of the soft modem software, limiting the operation of the soft modem software to a predetermined service level, and changing data samples passing through the soft modem software at a predefined magnitude and frequency.
Furthermore, in accordance with a preferred embodiment of the present invention, the alteration step begins a predetermined amount of time after operation of the soft modem software begins.
Alternatively, in accordance with a preferred embodiment of the present invention, the alteration step begins a random amount of time after operation of the soft modem software begins.
There is also provided, in accordance with a preferred embodiment of the present invention, a method for protecting soft modem software to be downloaded from an external computer to a local computer having a unique key. The method includes the steps of sending the unique key to the external computer, generating a customized version of the modem software with which the key is associated, downloading the customized version to the local computer, reading the unique key from the local computer, and altering operation of the customized version if the read key is incompatible with the associated key. The alteration step includes at least one of the following steps: stopping execution of the customized version, limiting the operation of the customized version to a predetermined service level, and changing data samples passing through the customized version at a predefined magnitude and frequency.
Preferably, in accordance with a preferred embodiment of the present invention, the alteration step begins a predetermined amount of time after operation of the customized version begins.
Alternatively, in accordance with a preferred embodiment of the present invention, the alteration step begins a random amount of time after operation of the customized version begins.